<?php
namespace Framework\View;

/**
 * 如果当前缓存的模板仍然是最新的，给定上次修改时间，或者其他情况，则该isFresh()方法必须返回。truefalse
 * 该getSourceContext()方法必须返回 的实例\Twig\Source。
 */
class MyLoader implements \Twig\Loader\LoaderInterface
{
    /**
     * 返回给定模板逻辑名称的源上下文。
     *
     * @param string $name 模板逻辑名
     *
     * @return \Twig\Source
     *
     * @throws \Twig\Error\LoaderError When $name is not found
     */
    public function getSourceContext($name);

    /**
     * 获取用于给定模板名称的缓存的缓存键。
     *
     * @param string $name 要加载的模板的名称
     *
     * @return string The cache key
     *
     * @throws \Twig\Error\LoaderError When $name is not found
     */
    public function getCacheKey($name);

    /**
     * 如果模板仍然新鲜，则返回 true。
     *
     * @param string    $name The template name
     * @param timestamp $time 缓存模板的最后修改时间
     *
     * @return bool    true if the template is fresh, false otherwise
     *
     * @throws \Twig\Error\LoaderError When $name is not found
     */
    public function isFresh($name, $time);

    /**
     * 检查我们是否有模板的源代码，给定它的名字。
     *
     * @param string $name 检查我们是否可以加载的模板名称
     *
     * @return bool    模板源代码是否由该加载器处理
     */
    public function exists($name);
}